package com.bonc.ioc.dao;

import com.bonc.ioc.base.mapper.BaseDao;
import com.bonc.ioc.model.DataAssetInfo;
import com.bonc.ioc.vo.KnowledgesVo;
import com.bonc.ioc.vo.TopicKnowledge;
import com.bonc.ioc.vo.TopicVo;
import com.bonc.ioc.vo.UpTopicVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @version 1.0
 * @description:
 * @author: wangqinglin
 * @date: 2021/3/18 11:06
 * @change : 2021/3/18 11:06 by q8541q@163.com  for init
 */
@Mapper
public interface TopicMapper extends BaseDao<TopicVo> {


    /**
     * select by primary key
     *
     * @param id primary key
     * @return object by primary key
     */
    TopicVo selectByPrimaryKey(Long id);

    /**
     * 分页查询专题前台
     * @param map
     * @return
     */
    List<UpTopicVo> selectTopicByPage(HashMap<String,Object> map);

    /**
     * 根据id查询专题详情
     * @param id
     * @return
     */
    TopicVo selectTopicMessage(String id);

    /**
     * 根据id查询title
     * @param assetsId
     * @return
     */
    List<String> selectAssetsTitle(List<String> assetsId);

    /**
     * 根据id查询知识产权标题
     * @param id
     * @return
     */
    List<String> selectKnowledge(List<String> id);

    /**
     * 点击增加浏览量
     * @param id
     */
    void updateTopicViews(String id);

    /**
     * 查询科研数据
     * @param id
     * @return
     */
    List<DataAssetInfo> selectAssets(List<String> id);

    /**
     * 查询科学软件
     * @param id
     * @return
     */
    List<KnowledgesVo> selectKnowledgesVo(List<String> id);

    /**
     * 查询所有 专题id 和 对应的科研软件
     * @return
     */
    List<TopicKnowledge> selectAllTopicKnowledge();

    /**
     * 批量删除专题中的 科研软件（已经不存在的科研软件）
     * @param topicKnowledges
     */
    void updateAllTopicKnowledge(List<TopicKnowledge> topicKnowledges);
}